Networks are comprised of various network elements, which process and transmit traffic (i.e., network packets such as Internet Protocol (“IP”) packets, Ethernet packets, etc.) flowing through the network. Each network element may comprise a number of line cards (which include one or more ports and chips) and control cards (which include one or more chips) to transmit the traffic through the network element. Communications within a network element requires the various chips within a network element to communicate information.
Flow control is a technique for ensuring that a transmitting chip (e.g., a chip on a line card) does not overwhelm a receiving chip with data. Flow control operates to slow or temporarily halt transmission from the source, allowing the recipient, for example, another chip (e.g., another chip on the line card) to unload any stored data. Specifically, a receiving chip can transmit a flow control signal to a transmitting chip, and the transmitting chip can adjust its rate of data transmission accordingly. One such flow control scheme used for chips processing IP packet traffic is the Optical Internetworking Forum System Packet Interface Level 4 Phase 2: OC-192 System Interface for Physical and Link Layer Devices (January 2001) (the “OIF SPI-4.2.2 standard”). This standard is TDM-based (it combines different data streams, such that each data stream is assigned a time slot within a TDM data stream). The time slots are referred to as operating according to a calendar.
Although the OIF SPI-4.2 standard has a low pin count, it suffers from several disadvantages. For instance, network packet transmissions are typically sent in bursts. Because the OIF SPI-4.2 standard does not permit flow control to be transmitted when needed (instead, it requires adherence to the TDM-based calendar), it does not model the bursty nature of IP packet traffic well and therefore, requires additional buffering. In addition, the bandwidth of network packet transmissions can vary widely on a per channel basis. However, since the OIF SPI-4.2 standard uses fixed time slots, variations of bandwidth allocation are difficult to program (one or more time slots must be selected and programmed). In addition, the OIF SPI-4.2 standard requires the programming (initially as well as to add/delete channels) of both the sender and receiver. Further, for the addition or deletion of ports, the OIF SPI-4.2 standard requires that the programming of the calendar of the sender and recipient be in sync. Also, accumulated state information must be maintained for each packet buffer to allow for the delay between when a network packet is received and when flow control information can be transmitted.